package com.laity.stream;

import java.util.Comparator;
import java.util.stream.Stream;

/**
 * @author: Laity
 * @Project: JavaLaity
 * @Package: com.laity.stream.Test
 * @Date: 2023年12月04日 09:44
 * @Description: Stream 测试类
 * 题目要求：一分钟内完成此题，只能用一行代码实现
 * 现在有五个用户，筛选
 * 1.Id必须是偶数
 * 2.年龄必须大于23
 * 3.用户名转为大写
 * 4.用户名字母倒着排序
 * 5.只输出一个用户
 */

public class Test {
    public static void main(String[] args) {
        User user1 = new User(1, "l", 17);
        User user2 = new User(2, "la", 25);
        User user3 = new User(3, "laity", 26);
        User user4 = new User(4, "laitylaity", 27);
        User user5 = new User(5, "laitylaitylaity", 28);
        // Stream流 + 链式操作 + 函数式编程 + lambda表达式
        Stream.of(user1, user2, user3, user4, user5).filter(user -> user.getId() % 2 == 0)
                .filter(user -> user.getAge() > 23)
                .map(user -> user.getName().toUpperCase())
                .sorted(Comparator.reverseOrder()) // (u1,u2) -> u2.compareTo(u1);
                .limit(1)
                .forEach(System.out::println);
    }
}
